package com.dlc.shop.service;


import com.dlc.shop.bean.dto.flow.CustomerRetainedDTO;
import com.dlc.shop.bean.dto.flow.MemberReqDTO;
import com.dlc.shop.bean.param.MemberReqParam;
import com.dlc.shop.bean.param.MemberSurveyRespParam;
import com.dlc.shop.bean.vo.flow.*;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;

/**
 * @author lgh on 2018/10/26.
 */
public interface CustomerAnalysisService {

    /**
     * 获取会员调查信息列表
     * @param memberReqParam 客户参数
     * @return 会员调查信息
     */
    MemberSurveyRespParam generalize(MemberReqParam memberReqParam);

    /**
     * 会员分析，会员概况
     * @param param
     * @return
     */
    MemberSurveyRespVO getMemberSurvey(MemberReqDTO param);

    /**
     * 会员分析，会员人数趋势/ 会员占比趋势
     * @param param
     * @return
     */
    List<MemberTrendRespVO> getMemberTrend(MemberReqDTO param);

    /**
     * 会员分析，会员贡献价值分析
     * @param param
     * @return
     */
    MemberContributeRespVO getMemberContributeValue(MemberReqDTO param);

    /**
     * 会员分析，新老会员成交分析
     * @param param
     * @return
     */
	MemberDealRespVO getMemberDeal(MemberReqDTO param);

    /**
     * 客户分析，客户留存分析
     * @param customerRetainedDTO
     * @return
     */
	List<CustomerRetainVO> getTradeRetained(CustomerRetainedDTO customerRetainedDTO);

    /**
     * 会员分析，会员人数趋势excel导出
     * @param param
     * @param response
     */
    void memberTrendExport(MemberReqDTO param, HttpServletResponse response);

}
